package cn.bugstack.infrastructure.dao;

import cn.bugstack.infrastructure.dao.po.NotifyTask;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @description 回调任务，以拼团队伍为单位取出回调任务
 */
@Mapper
public interface INotifyTaskDao {

    // 向数据库插入一条 回调任务，以便失败时，由定时器执行补偿
    void insert(NotifyTask notifyTask);

    // 取出 50 条尚未 失败 的回调任务
    List<NotifyTask> queryUnExecutedNotifyTaskList();

    // 取出单条尚未 失败 的回调任务
    NotifyTask queryUnExecutedNotifyTaskByTeamId(String teamId);

    // 设置队伍的回调任务状态为成功
    int updateNotifyTaskStatusSuccess(NotifyTask notifyTask);

    // 设置队伍的回调任务状态为错误
    int updateNotifyTaskStatusError(NotifyTask notifyTask);

    // 设置队伍的回调任务状态为重试
    int updateNotifyTaskStatusRetry(NotifyTask notifyTask);
}
